'''
4.2.3 异常处理
'''

def error_fun():
    try:
        name = input('请输入名称：')
        if name.isspace():
            raise ValueError('name 不可是空格')
        if name.isdigit():
            raise ValueError('name 不可是数字')

        name = name + 123

    # 无法处理本层抛出的ValueError，该错误会抛出到上一层
    except TypeError as e: 
        print(f'类型错误：{e}')

# error_fun层的上一层
# try:
#     error_fun()
# except ValueError as e:
#     print(f'{e}, 请重试')
#     error_fun()

import traceback

try:
    l = [1,2,3]
    # 获得列表l的长度
    num = len(l)
    # 以 _ 命名的变量，表示不关心该变量
    _ = l[num]
except:
    # 打印出详细的异常信息
    traceback.print_exc()
    with open('error.log', 'a') as f:
        errorinfo = traceback.format_exc()
        f.write(errorinfo)


